package com.daifeng.gulimall.carts.service;

import com.daifeng.gulimall.carts.vo.Cart;
import com.daifeng.gulimall.carts.vo.CartItem;

import java.util.List;

public interface CartService {
    /**
     * 添加商品到购物车 并返回添加的商品信息
     * @param skuId
     * @param num
     * @return
     */
    CartItem addCart(Long skuId, Integer num);

    /**
     * 去redis中根据商品的skuid查询购物项
     * @param skuId
     * @return
     */
    CartItem getCartItem(Long skuId);

    /**
     * 获取购物车信息
     * @return
     */
    Cart getCart();

    /**
     * 清空购物车
     * @param tempCartKey
     */
     void emptyCart(String tempCartKey);

    /**
     * 修改商品选中状态
     * @param skuId
     * @param check
     */
    void checkItem(Long skuId, Long check);

    /**
     * 改变商品数量
     * @param skuId
     * @param num
     */
    void changeItemCount(Long skuId, Integer num);

    /**
     * 删除购物项
     * @param skuId
     */
    void deleteItem(Long skuId);

    /**
     *  获取所有购物车中选中的商品
     * @return
     */
    List<CartItem> getCheckItems();
}
